/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */


 
import java.awt.Image;
import javax.swing.ImageIcon;

/**
 *
 * @author gabriel
 * Pinky. Buscará colisionar con Pac-Man. Para acercarse a Pac-Man
 * calculará la distancia (por ejemplo medido en filas y columnas) e intentará
 * primero acercarse horizontalmente y luego verticalmente.
 */
public class Pinky extends Fantasma{
    
    private String nombre; //Blinky, 
    private boolean miedo;
    private int x,y;
    private String ghostPath = "/resources/pinky_down.jpeg";
    private Image ghostImage;
    
    
     public Pinky(int x, int y) { 
        ImageIcon gii = new ImageIcon(this.getClass().getResource(ghostPath));
        ghostImage = gii.getImage();       
        this.miedo = false;
        this.nombre = "Speedy (Pinky)";
        this.x = x;
        this.y = y;
    }
     
   
     
    /**
     * Busca colisionar con pacman, intentará primero acercarse
     * horizontalmente y luego verticalmente.
     */
    public void avanza(int x, int y, Mapa map) {  
         int oriVertical = this.y - y;
        //si pacman está a la derecha será negativa sino positiva
        int oriHorizontal = this.x - x;
        boolean colision = false;
        
        if (oriHorizontal!=0){
           if (oriHorizontal>0){
               if (map.getElement(this.x+1,this.y)!='1'){
                    this.x++;
               } else {
                   colision = true;
               }             
           }else{
               if (map.getElement(this.x-1,this.y)!='1'){
                    this.x--;
               } else {
                   colision = true;
               } 
           }
        } 
        
        if (oriHorizontal==0 || colision){
            if (oriVertical>0){
               if (map.getElement(this.x,this.y+1)!='1'){
                  this.y++;
               }
            }else{
               if (map.getElement(this.x,this.y-1)!='1'){
                  this.y--;
               } 
            } 
        }
                          
        System.out.println("Pinky se mueve");
    }

    public Image getGhostImage() {
        return ghostImage;
    }

    public void setGhostImage(Image ghostImage) {
        this.ghostImage = ghostImage;
    }  
    
     public String getGhostPath() {
        return ghostPath!=null ? ghostPath:"Ruta imagen "+ this.getClass().getName() +" = null";
    }

    public void setGhostPath(String ghostPath) {
        this.ghostPath = ghostPath;
    }
    
    /**
     *
     * @param map
     * @return
     */
    @Override
    public boolean colision(Mapa map) {
        boolean ok = false;
        if (this.x >= 0 && this.x < PacmanUtils.COLUMNAS && this.y >= 0 && this.y < PacmanUtils.FILAS) {
            ok = map.getElement(this.x, this.y) == '1';
        }

        return ok;
    }
    
    
    
    
}
